package com.legendshop.openportal.sdk.model.response;

import com.legendshop.openportal.sdk.model.BaseResponse;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 订单列表返回值
 *
 */
@Data
public class OrderPageResponse extends BaseResponse {

    /**
     * 微信unionId
     */
    @ApiModelProperty(value = "微信unionId")
    private String wxUnionId;

    /**
     * 订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String subNum;

    /**
     * 商品名
     */
    @ApiModelProperty(value = "商品名")
    private String prodName;

    /**
     * 商品名
     */
    @ApiModelProperty(value = "商品名")
    private String mainProdName;

    /**
     * 外部订单号
     */
    @ApiModelProperty(value = "外部订单号")
    private String outSubNumber;

    /**
     * 订购用户手机号
     */
    @ApiModelProperty(value = "订购用户手机号")
    private String userMobile;

    /**
     * 订购用户昵称
     */
    @ApiModelProperty(value = "订购用户昵称")
    private String nickName;

    /**
     * 订单提交时间
     */
    @ApiModelProperty(value = "订单提交时间")
    private Date subDate;


    /**
     * 订单商品原价(不包含任何其他价格)
     */
    @ApiModelProperty(value = "订单商品原价(不包含任何其他价格)")
    private BigDecimal total;

    /**
     * 订单商品实际价格(运费 折扣 促销)
     */
    @ApiModelProperty(value = "订单商品实际价格(运费 折扣 促销)")
    private BigDecimal actualTotal;


    /**
     * 支付日期
     */
    @ApiModelProperty(value = "支付日期")
    private Date payDate;


    /**
     * 订单状态 OrderStatusEnum
     */
    @ApiModelProperty(value = "订单状态, 0:尚未确认; 1:待付款; 2: 待发货; 3:待收货; 4: 已完成; 5: 已取消")
    private Integer status;


    /**
     * 退换货状态  0:默认,1:在处理,2:处理完成
     */
    @ApiModelProperty(value = "退换货状态  0:默认,1:在处理,2:处理完成")
    private Long refundState;


    /**
     * 订单商品总数
     */
    @ApiModelProperty(value = "订单商品总数")
    private Integer productNums;


    /**
     * 是否已经支付
     */
    @ApiModelProperty(value = "是否已经支付")
    private boolean ispay;


    /**
     * 订单里的商品
     */
    @ApiModelProperty(value = "订单里的商品")
    private List<SubOrderItemResponse> subOrderItemDtos = new ArrayList<>();

    /**
     * 父订单号, 原始订单号
     */
    @ApiModelProperty(value = "父订单号, 原始订单号")
    private String parentSubNumber;

    /**
     * 来源订单号, 记住是由哪个订单拆出来的
     */
    @ApiModelProperty(value = "来源订单号, 记住是由哪个订单拆出来的")
    private String originalSubNumber;

    /**
     * 拆单状态， 0 未拆单  1 已拆单，默认为 0
     * {@see SubSplitStateEnum}
     */
    @ApiModelProperty(value = "拆单状态，已拆单的订单作废， 0 未拆单  1 已拆单，默认为 0")
    private Integer splitState;

    /**
     * 第三方的订单单号
     */
    @ApiModelProperty("第三方的订单单号")
    private String thirdOrderNo;



}
